FIG. 1 (prior art) shows the timing of GMQ procedure specified in the IGMP RFC (rfc2236—Internet Group Management Protocol, Version 2). According to the GMQ procedure, once every GMQ Interval an IGMP router broadcasts a GMQ to the hosts (e.g. set-top boxes—STB) that it services. Each host must then respond with a membership report for every channel that it is receiving. If the host is receiving multiple channels, then it randomly distributes its membership reports over a response window (e.g. 10 seconds), which begins immediately after the GMQ.
A problem with this procedure is that when there are a large number of hosts (e.g. 1000 to 2000), each of which may be receiving several channels, there are consequently a very large number of membership reports (e.g. 3000) received by the IGMP router within the response window. Since the response window is relatively short (e.g. 10 seconds) compared to the GMQ interval (e.g. 125 seconds) the peak processing requirements for processing these membership reports can be quite high.
For example, with 1000 to 2000 hosts the peak processing load could be in the order of 300 messages/second. In the case of the 7300 ASAM, it is desirable to keep the load at about 40 to 50 messages/second, so as not to affect other function being performed by the IGMP router, such as providing service to the hosts. Therefore, a way of reducing the peak load required to support GMQs is desired.
According to the invention, the peak processing load is reduced by balancing the load over the GMQ interval. This is done by logically grouping the hosts into groups, and sending a GMQ to only one group at a time, where the GMQs are sent at regularly spaced apart times throughout the GMQ interval. The hosts of each group will respond with their membership reports in the response window that follows the GMQ sent to that group. Therefore, the entire number of membership reports received during a GMQ interval will be distributed over that interval, and consequently the processing load required to process these reports will also be distributed over the GMQ interval.
The invention thus is directed to a method and system for querying a plurality of IGMP hosts supported by an IGMP router wherein the IGMP router logically subdivides the plurality of IGMP hosts into groups of hosts. Each group of hosts contains one or more IGMP hosts. The IGMP router sends the GMQ signal to one group of hosts at a time and the GMQs are sent at regularly spaced-apart times throughout a GMQ interval predetermined for the IGMP router. Finally, responsive to receiving a membership report from an IGMP host in response to a GMQ sent to a group of hosts to which the IGMP host belongs, the IGMP router processes the membership report. In addition, the time spacing between adjacent GMQs is equal to the length of the GMQ interval divided by the number of groups of hosts. In addition, each group of hosts is maintained to have at least a certain number of hosts, the certain number of hosts being the same for all groups after a maintenance operation is complete. At such time, no group of hosts will have a number of hosts that is greater than the certain number by more than one.
The logical grouping or subdividing of the hosts and scheduling of the GMQ for each host of groups is performed. That is to say, a logical grouping table has the same number of rows as there are seconds in the GMQ interval. An alternative for implementing the grouping of hosts and scheduling the GMQ for each group is that the grouping table does not have to have the same number of rows as there are seconds in the GMQ interval, that is, so the number could be the maximum number of groups allowed and the table grows to the maximum as groups are added.
Thus, the invention is directed to an improved query load balancing system for IGMP GMQs.